Amazon DynamoDB Table Capacity Mode দুটি মূল অপশন প্রদান করে: Provisioned এবং On-Demand। প্রতিটি অপশন আপনাকে ডেটাবেসের কর্মক্ষমতা এবং খরচের উপর বিভিন্ন স্তরের নিয়ন্ত্রণ প্রদান করে। সঠিক মডেলটি নির্বাচন করা আপনার অ্যাপ্লিকেশনের ট্রাফিক এবং স্কেলিং চাহিদার উপর নির্ভর করে।
এখানে আমরা Provisioned এবং On-Demand মডেলের মধ্যে প্রধান পার্থক্য এবং প্রতিটির সুবিধা ও অসুবিধা আলোচনা করব।
1. Provisioned Capacity Mode
Provisioned Capacity Mode হল সেই ডেটাবেস কনফিগারেশন যেখানে আপনি প্রতি সেকেন্ডে কতটি রিড (Read) এবং রাইট (Write) অপারেশন প্রয়োজন হবে তা পূর্বনির্ধারণ করেন।
কীভাবে কাজ করে:
- Read Capacity Units (RCU) এবং Write Capacity Units (WCU) নির্ধারণ করতে হবে।
- RCU (Read Capacity Units): প্রতি সেকেন্ডে 4 KB ডেটা পড়ার ক্ষমতা।
- WCU (Write Capacity Units): প্রতি সেকেন্ডে 1 KB ডেটা লেখার ক্ষমতা।
- যখন আপনি DynamoDB টেবিল তৈরি করেন, তখন আপনি নির্দিষ্ট সংখ্যক RCU এবং WCU নির্ধারণ করেন। এই মডেল আপনাকে নির্দিষ্ট ক্ষমতা ব্যবহার করে পূর্বনির্ধারিত পারফরম্যান্স গ্যারান্টি প্রদান করে।
ফায়দা:
- নির্দিষ্ট স্কেলিং: আপনি যে পরিমাণ পারফরম্যান্স প্রয়োজন তা নির্দিষ্ট করতে পারবেন এবং পূর্বনির্ধারিত কনফিগারেশনের ভিত্তিতে টেবিলের পারফরম্যান্স স্থির থাকে।
- কম খরচে: যদি আপনার অ্যাপ্লিকেশনের রিড এবং রাইট অপারেশন কম থাকে, তবে এটি কম খরচে হতে পারে।
সীমাবদ্ধতা:
- স্কেলিং চ্যালেঞ্জ: ট্র্যাফিকের পরিবর্তন অনুযায়ী পারফরম্যান্স স্কেল করতে হবে। যেমন, আপনার যদি ট্রাফিক হঠাৎ বৃদ্ধি পায়, তাহলে আপনাকে RCPU/WCPU এর মান বাড়াতে হবে।
- থ্রুপুট সীমা: নির্দিষ্ট সংখ্যা RCU/WCU সীমাবদ্ধ থাকে, তাই যদি আপনি সেটার বাইরে ট্র্যাফিক চান, তাহলে কনফিগারেশন পরিবর্তন করতে হতে পারে।
2. On-Demand Capacity Mode
On-Demand Capacity Mode হল একটি ফ্লেক্সিবল অপশন, যা আপনাকে ট্রাফিকের উপর ভিত্তি করে অটোমেটিক্যালি স্কেল করতে দেয়। আপনাকে পূর্বনির্ধারিত RCU এবং WCU নির্ধারণ করতে হয় না। DynamoDB স্বয়ংক্রিয়ভাবে ইনকামিং রিড এবং রাইট ট্র্যাফিকের ভিত্তিতে প্রয়োজনীয় রিসোর্স প্রদান করবে।
কীভাবে কাজ করে:
- আপনি রিড এবং রাইট অপারেশনের জন্য নির্দিষ্ট সীমা সেট করতে হবে না। DynamoDB স্বয়ংক্রিয়ভাবে প্রয়োজনীয় ক্ষমতা সরবরাহ করে, এবং অতিরিক্ত ক্ষমতা চাহিদা পূরণ করতে ট্র্যাফিকের উপর ভিত্তি করে সম্পদ বাড়ায়।
ফায়দা:
- অটো-স্কেলিং: আপনার অ্যাপ্লিকেশন যদি ট্রাফিকের উপর ভিত্তি করে দ্রুত পরিবর্তিত হয় (যেমন হালকা ওভারলোড বা আউটেজ), তবে DynamoDB অটোমেটিকভাবে স্কেলিং প্রক্রিয়া পরিচালনা করবে।
- সরল ব্যবস্থাপনা: RCPU/WCPU কনফিগারেশনের দরকার নেই। DynamoDB আপনাকে সঠিক ক্ষমতা দিয়ে থাকে, যেটি আপনার অ্যাপ্লিকেশনের প্রয়োজন অনুসারে।
সীমাবদ্ধতা:
- অতিরিক্ত খরচ: On-demand মডেলে আপনাকে একটানা ব্যবহারের জন্য বেশি অর্থ প্রদান করতে হতে পারে। কারণ এখানে আপনি ব্যবহৃত ক্ষমতার জন্য পেমেন্ট করবেন, সুতরাং উচ্চ ট্রাফিকের জন্য খরচ বেশি হতে পারে।
- বিকল্পে অপটিমাইজেশন কম: পূর্বনির্ধারিত কনফিগারেশন না থাকায়, কখনো কখনো আপনার নির্দিষ্ট কেসের জন্য অপটিমাইজেশন কম হতে পারে।
Provisioned vs On-Demand: কখন কোনটা ব্যবহার করবেন?
| ক্যাপাসিটি মোড | কখন ব্যবহার করবেন | ফায়দা | সীমাবদ্ধতা |
|---|---|---|---|
| Provisioned | যখন আপনি পূর্বানুমান করতে পারেন কতটুকু রিড এবং রাইট প্রয়োজন হবে এবং যদি ট্র্যাফিক স্থিতিশীল থাকে। | সস্তা (কম ট্রাফিক হলে), কন্ট্রোলড পারফরম্যান্স | স্কেলিংয়ের জন্য কনফিগারেশন পরিবর্তন করা দরকার। |
| On-Demand | যখন আপনি জানেন না কতটুকু ট্রাফিক আসবে বা আপনি চাচ্ছেন স্বয়ংক্রিয়ভাবে স্কেল করতে। | অটো-স্কেলিং, সহজ ব্যবস্থাপনা | খরচ বেশি হতে পারে, নিয়ন্ত্রণ কম। |
চূড়ান্ত সিদ্ধান্ত:
- যদি আপনার অ্যাপ্লিকেশন ট্রাফিক পূর্বানুমানযোগ্য এবং প্রেডিক্টেবল হয়, তবে Provisioned Mode আপনার জন্য ভাল হতে পারে, কারণ এতে খরচ কম থাকবে।
- যদি আপনার অ্যাপ্লিকেশন ট্রাফিক অনেক বেশি পরিবর্তনশীল হয় বা আপনি রিয়েল-টাইম স্কেলিং চান, তবে On-Demand Mode নির্বাচন করা ভালো।
DynamoDB-এর ক্ষমতা এবং আপনার অ্যাপ্লিকেশনের প্রয়োজনীয়তা অনুযায়ী এই দুটি মডেলের মধ্যে থেকে সঠিকটি বেছে নিন।
Read more